home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue52 / HTML / Code / Router / Main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-10-26  |  2.5 KB  |  89 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, HTTPApp, DBClient, MConnect,
  7.   MidasCon;
  8.  
  9. type
  10.   TwmMain = class(TWebModule)
  11.     procedure wmMainWebActionItemAnyAction(Sender: TObject;
  12.       Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  13.   private
  14.   protected
  15.   public
  16.   end;
  17.  
  18. var
  19.   wmMain: TwmMain;
  20.  
  21. implementation
  22.  
  23. {$R *.DFM}
  24.  
  25. uses
  26.   ActiveX, SML_Handler_TLB;
  27.  
  28. procedure TwmMain.wmMainWebActionItemAnyAction(Sender: TObject;
  29.   Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  30. var
  31.   Environment: TStringList;
  32.   PageProducer: SMLHandler;
  33. begin
  34.   Environment := TStringList.Create;
  35.   try
  36.     Request.ExtractContentFields(Environment);
  37.     Environment.AddStrings(Request.QueryFields);
  38.  
  39.     with Environment, Request do
  40.     begin
  41.       Values['REQUEST_METHOD'] := Method;
  42.       Values['SERVER_PROTOCOL'] := ProtocolVersion;
  43.       Values['URL'] := URL;
  44.       Values['QUERY_STRING'] := Query;
  45.       Values['PATH_INFO'] := PathInfo;
  46.       Values['PATH_TRANSLATED'] := PathTranslated;
  47.       Values['HTTP_CACHE_CONTROL'] := CacheControl;
  48.       Values['HTTP_DATE'] := DateToStr(Date);
  49.       Values['HTTP_ACCEPT'] := Accept;
  50.       Values['HTTP_FROM'] := From;
  51.       Values['HTTP_HOST'] := Host;
  52.       Values['HTTP_IF_MODIFIED_SINCE'] := DateTimeToStr(IfModifiedSince);
  53.       Values['HTTP_REFERER'] := Referer;
  54.       Values['HTTP_USER_AGENT'] := UserAgent;
  55.       Values['HTTP_CONTENT_ENCODING'] := ContentEncoding;
  56.       Values['HTTP_CONTENT_TYPE'] := ContentType;
  57.       Values['HTTP_CONTENT_LENGTH'] := IntToStr(ContentLength);
  58.       Values['HTTP_CONTENT_VERSION'] := ContentVersion;
  59.       Values['HTTP_DERIVED_FROM'] := DerivedFrom;
  60.       Values['HTTP_EXPIRES'] := DateTimeToStr(Expires);
  61.       Values['HTTP_TITLE'] := Title;
  62.       Values['REMOTE_ADDR'] := RemoteAddr;
  63.       Values['REMOTE_HOST'] := RemoteHost;
  64.       Values['REMOTE_USER'] := GetFieldByName('REMOTE_USER');
  65.       Values['SCRIPT_NAME'] := ScriptName;
  66.       Values['SERVER_PORT'] := IntToStr(ServerPort);
  67.       Values['CONTENT'] := Content;
  68.       Values['HTTP_CONNECTION'] := Connection;
  69.       Values['HTTP_COOKIE'] := Cookie;
  70.       Values['HTTP_AUTHORIZATION'] := Authorization;
  71.     end;
  72.  
  73.     PageProducer := coSMLHandler.Create;
  74.     try
  75.       Response.Content := PageProducer.GetContent(Environment.CommaText);
  76.     finally
  77.       PageProducer := nil;
  78.     end;
  79.   finally
  80.     Environment.Free;
  81.   end;
  82. end;
  83.  
  84. initialization
  85.   OleInitialize(nil);
  86. finalization
  87.   OleUninitialize;
  88. end.
  89.